package com.haha.helloworld.jump;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.haha.helloworld.R;

public class AActivity extends AppCompatActivity {
    private Button JumpToB_btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_aactivity);
        JumpToB_btn=(Button)findViewById(R.id.JumpToB_btn);
        JumpToB_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //显式跳转version_1，使用最多的一种
//                Intent intent1=new Intent(AActivity.this,BActivity.class);
//                startActivity(intent1);

                //显式跳转version_2
//                Intent intent2 = new Intent();
//                intent2.setClass(AActivity.this,BActivity.class);
//                startActivity(intent2);

                //显式跳转version_3
//                Intent intent3 = new Intent();
//                intent3.setClassName(AActivity.this,"com.haha.helloworld.jump.BActivity");
//                startActivity(intent3);

                //显式跳转version_4
//                Intent intent4 = new Intent();
//                intent4.setComponent(new ComponentName(AActivity.this,"com.haha.helloworld.jump.BActivity"));
//                startActivity(intent4);

                //隐式调用，不仅仅可以跳转页面，还可以调用系统中的一些功能。比如打电话等等
//                Intent intent5 = new Intent();
                //这里设置了，还需要在AndroidManifest.xml，中去设置一下
//                intent5.setAction("com.haha.helloworld.jump.BActivity");
//                startActivity(intent5);

                //Activity之间的数据传递
                Intent intent=new Intent(AActivity.this,BActivity.class);
                /*intent.putExtra();可以实现传值，本质里边封装的就是Bundle类型的值*/
                Bundle bundle = new Bundle();
                bundle.putString("name","哈哈怪");
                bundle.putInt("number",88);
                intent.putExtras(bundle);
                //跳转到页面B Activity，同时传值到B Activity
//                startActivity(intent);
                //如果在B Activity，按下返回按钮（不是跳转回来哈），获得B的值name需要以下方法
                //第一个参数还是intent，第二个参数是请求码，作用是区分
                startActivityForResult(intent,0);
            }
        });
    }
    //使用此方法获取B传递回来的数值
    //第一个参数，是0，第二个参数是AActivity.RESULT_OK，为-1，第三个参数就是返回的数据
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //打印输出的值
        Toast.makeText(AActivity.this,data.getExtras().getString("title"), Toast.LENGTH_SHORT).show();
    }
}